import {
  updateCheckBusiness,
  selectCheckInfoBusinessListSH,
  getQyInfo
} from '../../../../api/check'
import formRules from "../../../../utils/rules-form"
Page({
  /**
   * 页面的初始数据
   */
  data: {
    qyInfo: {},
    showCheckForm: false,
    loading: false,
    checkInfoDetail: {},
    expand: false,
    // 提交表单的数据 最终验证就是拿这个对象
    form: {
      jcfl: '',
      zwbj: '',
      sshy: '',
      qh: '',
      jd: '',
      lhdw: '',
    },
    rules: {
      jcfl: [{
        required: true,
        message: '请选择项目类型'
      }],
      zwbj: [{
        required: true,
        message: '请输入主委办局'
      }],
      qh: [{
        required: true,
        message: '请选择所属区'
      }],
      jd: [{
        required: true,
        message: '请选择所属街道'
      }],
      sshy: [{
        required: true,
        message: '请选择所属行业'
      }],
    },
    formList: []
  },
  // 获取检查详细信息
  getInfo() {
    this.setData({
      loading: true
    })
    selectCheckInfoBusinessListSH({
      ywid: this.data.ywid,
    }).then(res => {
      if (res.code == 1000) {
        // 获取企业的信息
        this.getQyInfo(res.tyxydm)
        // 联合单位数据整理
        let lhdw = '';
        if (res.lhdwList) {
          lhdw = res.lhdwList.map(item => {
            return item.dwid
          }).join(',')
        }
        // 整理保存的检查项
        let formList = [];
        res.data.forEach(item => {
          formList.push({
            ename: item.ename,
            id: item.id,
            ywid: item.xmid,
            lx: item.lx,
            flfg: item.flfg,
            zgqx: item.zgqx,
            question: item.question,
            fileList: item.fileList
          })
        })
        this.setData({
          checkInfoDetail: res,
          form: {
            id: res.id,
            jcfl: res.lx,
            zwbj: res.zwbj || '',
            lhdw: lhdw,
            qh: res.qh,
            jd: res.jd,
            sshy: res.sshy,
            code: res.tyxydm
          },
          formList,
          id: res.id,
          loading: false
        })
      }
    })
  },
  // 获取企业信息
  getQyInfo(code) {
    getQyInfo({
      code: code
    }).then(res => {
      if (res.code == 1000) {
        this.setData({
          qyInfo: res.qy
        })
      }
    })
  },
  // 填报项收起或者展开
  expandHanlder() {
    this.setData({
      expand: !this.data.expand
    })
  },
  // 质检项目类型选择框 change事件
  projectTypeChange(event) {
    this.setData({
      'form.jcfl': event.detail.bm
    })
  },
  // 主委办局 change事件
  zwbjChange(event) {
    this.setData({
      'form.zwbj': event.detail.bm
    })
  },

  //所属行业选择框 change事件
  sshyChange(event) {
    this.setData({
      'form.sshy': event.detail.bm
    })
  },
  // 区划-街道选择框 change事件
  qhChange(event) {
    this.setData({
      'form.qh': event.detail.qh.bm,
      'form.jd': event.detail.jd.bm || '',
    })
  },
  // 联合单位复选框 change事件
  lhdwChange(event) {
    this.setData({
      'form.lhdw': event.detail
    })
  },
  // 打开弹窗
  add() {
    this.selectComponent('#checkForm').open()
  },
  // form表单子组件发送过来的数据集
  sendMsg(event) {
     // 这是子组件里面的删除
     if (event.detail.isDel) {
      let formList = this.data.formList;
      formList.splice(this.data.currIndex, 1)
      this.setData({
        formList
      })
      return;
    }
    if (event.detail.isEdit) {
      let str = 'formList[' + this.data.currIndex + ']'
      this.setData({
        [str]: event.detail.form
      })
    } else {
      let formList = this.data.formList
      formList.push(event.detail.form)
      this.setData({
        formList
      })
    }
  },
  // 编辑
  edit(e) {
    this.setData({
      currIndex: e.mark.index
    })
    this.selectComponent('#checkForm').open(e.mark.item)
  },
  //删除
  del(e) {
    const vm = this;
    wx.showModal({
      title: '提示',
      content: '确定删除吗？',
      success(res) {
        if (res.confirm) {
          let formList = vm.data.formList;
          formList.splice(e.mark.index, 1)
          vm.setData({
            formList
          })
        }
      }
    })
  },
  // 提交审核
  submitAudit() {
    this.save(2)
  },
  // 提交审核 数据在formDataList里面
  save(type) {
    formRules(this.data.rules, this.data.form, (status) => {
      if (status) {
        if (this.data.formList.length == 0) {
          wx.showToast({
            title: '请添加检查项！',
            icon: 'none'
          })
          return;
        }
        // 检验通过之后 才能提交数据
        wx.showLoading({
          title: '提交中...',
        })
        let finalDataList = []
        // 这里把所有的检查项 一起传给接口 不管他填没填写
        this.data.formList.forEach(item => {
          finalDataList.push({
            id: item.id,
            ywid: item.ywid,
            lx: item.lx,
            zgqx: item.zgqx,
            flfg:item.flfg,
            question: item.question,
            url1: item.fileList[0] ? item.fileList[0].fileurl : '',
            url2: item.fileList[1] ? item.fileList[1].fileurl : '',
            url3: item.fileList[2] ? item.fileList[2].fileurl : '',
          })
        });

        updateCheckBusiness({
          bclx: type, //保存类型 1暂存 2提交 4审核
          id: this.data.form.id, //检查列表返回的id、
          txlx: 2, //填写类型 1自查 2检查
          jcfl: this.data.form.jcfl, //下拉检查类型、
          zwbj: this.data.form.zwbj, //主委办局
          lhdw: this.data.form.lhdw, //联合单位多选时以英文逗号分隔、
          qh: this.data.form.qh, //所属区
          jd: this.data.form.jd, //所属街道
          sshy: this.data.form.sshy, //所属行业
          code: this.data.form.code, //企业统一信用代码、
          dataList: JSON.stringify(finalDataList), //项目检查数据集合
        }).then(res => {
          if (res.code == 1000) {
            wx.hideLoading()
            wx.showModal({
              title: '提示',
              content: '提交成功！',
              showCancel: false,
              success: function () {
                wx.navigateBack({
                  delta: 1
                })
              }
            })
          }
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 保存企业信用代码
    this.setData({
      ywid: options.ywid
    })
    this.getInfo()
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})